package modele;

import java.util.ArrayList;

public class Album {
	private String titre, editeur,resume;
	private int note,annee;
	private String image;
	private ArrayList<String> auteurs,dessinateurs, genres;
	/**
	 * permet de creer un nouvel album
	 * @param titre de type string
	 * @param editeur de type string
	 * @param genres de type ArraList de String
	 * @param auteurs de type ArraList de String
	 * @param note de type int
	 * @param resume de type string
	 * @param dessinateurs de type ArraList de String
	 * @param annee de type int
	 * @param image de type URL
	 */
	public Album(String titre,String editeur, ArrayList<String> genres, ArrayList<String> auteurs, int note,String resume,ArrayList<String> dessinateurs,int annee,String image){
		this.editeur = editeur;
		this.genres=genres;
		this.titre=titre;
		this.note=note;
		this.annee=annee;
		this.auteurs=auteurs;
		this.dessinateurs=dessinateurs;
		this.image=image;
		this.resume=resume;
	}
	/**
	 * 
	 * @return le titre de la bd
	 */
	public String getTitre() {
		return(titre);
	}
/**
 * permet de tester l'equalitée de deux albums
 * @param a un autre album 	
 * @return true si l'album passé en paramètre est equivalent à cet album
 */
	public boolean equals(Album a){
		if(!this.titre.equals(a.titre))return false;
		if(!this.editeur.equals(a.editeur))return false;
		if(!this.genres.equals(a.genres))return false;
		if(!this.dessinateurs.equals(a.dessinateurs))return false;
		if(!this.auteurs.equals(a.auteurs))return false;
		if(!this.image.equals(a.image))return false;
		if(!(this.note==a.note))return false;
		if(!(this.annee==a.annee))return false;
		return true;
	}
	/**
	 * 
	 * @return l'editeur de la bd
	 */
	public String getEditeur(){
		return(editeur);
		}
	/**
	 * 
	 * @return la liste des genres de la bd sous forme de string "genre1, genre2, genre3"
	 */
	public String getGenres(){
		String retour="";
		for(int i=0; i!= genres.size(); ++i){
			if(i==0)
				retour+=genres.get(i);
			else
				retour+=(", "+genres.get(i));
		}
		return retour;
	}
	/**
	 * 
	 * @return la liste des dessianteurs de la bd sous forme de string "dessinateur1, dessinateur2, dessianteur3"
	 */
	public String getDessinateurs(){
		String retour="";
		for(int i=0; i!= dessinateurs.size(); ++i){
			if(i==0)
				retour+=dessinateurs.get(i);
			else
				retour+=(", "+dessinateurs.get(i));
		}
		return retour;
		
	}
	/**
	 * 
	 * @return la liste des auteurs de la bd sous form de string "auteur1, auteur2, auteur3"
	 */
	public String getAuteurs(){
		String retour="";
		for(int i=0; i!= auteurs.size(); ++i){
			if(i==0)
				retour+=auteurs.get(i);
			else
				retour+=(", "+auteurs.get(i));
		}
		return retour;
		
	}
	/**
	 * 
	 * @return le note sous la forme d'une string
	 */
	public String getNote() {
		return ""+this.note;
	}
	/**
	 * 
	 * @return l'annee sous la forme d'une string
	 */
	public String getAnnee() {
		return ""+this.annee;
	}
	/**
	 * 
	 * @return l'url de l'image de la bd sous la forme d'un URL
	 */
	public String getImage() {
		return this.image;
	}
	/**
	 * 
	 * @return le resume de la bd sous la forme d'une string
	 */
	public String getResume() {
		return this.resume;
	}

	/**
	 * 
	 * @return l'integralite des champs separes par des '|'
	 * exemple:
	 * titre|editeur|[genre1, genre2]|[auteur1, auteur2]|20|resume|[dessinateur3, dessinateur2]|2013|url
	 */
	public String toString(){
		return titre+"|"+editeur+"|"+genres+"|"+auteurs+"|"+note+"|"+resume+"|"+dessinateurs+"|"+annee+"|"+image;
		
	}
}
